<?php

	require_once $_SERVER['DOCUMENT_ROOT'] . "/chimera/php/conexaolocal.php";
	require_once $_SERVER['DOCUMENT_ROOT'] . "/chimera/model/Conteudo.class.php";
	
	class ConteudoDAO{
	
		public function ConteudoDAO(){
			
		}
		
		public function buscarNews($idcategoria){
			
			$arrConteudo = array();
			$indice = 0;
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("SELECT idConteudo, assunto, data, fk_idUsuario FROM Conteudo 
			WHERE fk_idCategorias = ? order by idConteudo DESC limit 10")){
			
				$sql->bind_param('i', $idcategoria);
				$sql->execute();
				$sql->bind_result($idconteudo, $assunto, $data, $idusuario);
				
				while ($sql->fetch()) {
					$objconteudo = new Conteudo();
					$objconteudo->setIdConteudo($idconteudo);
					$objconteudo->setAssunto($assunto);
					
					$data = strtotime($data);
					$data =	date('d/m/Y', $data); 
					
					$objconteudo->setData($data);
					$objconteudo->setFk_idUsuario($idusuario);
					$arrConteudo[$indice] = $objconteudo;
					$indice++;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $arrConteudo;
				
		}
		
		public function buscarPublicNews(){
			
			$arrConteudo = array();
			$indice = 0;
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("SELECT idConteudo, assunto, data, fk_idUsuario, fk_idCategorias FROM Conteudo order by idConteudo DESC limit 12")){
				
				$sql->execute();
				$sql->bind_result($idconteudo, $assunto, $data, $idusuario, $idcategoria);
				
				while ($sql->fetch()) {
					$objconteudo = new Conteudo();
					$objconteudo->setIdConteudo($idconteudo);
					$objconteudo->setAssunto($assunto);
					
					$data = strtotime($data);
					$data =	date('d/m/Y', $data); 
					
					$objconteudo->setData($data);
					$objconteudo->setFk_idUsuario($idusuario);
					$objconteudo->setFk_idCategorias($idcategoria);
					$arrConteudo[$indice] = $objconteudo;
					$indice++;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $arrConteudo;
				
		}
		
		public function buscarConteudo($idconteudo){
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("SELECT idConteudo, assunto, conteudo, fk_idCategorias, fk_idUsuario FROM 
			Conteudo WHERE idConteudo = ?")){
			
				$sql->bind_param('i', $idconteudo);
				$sql->execute();
				$sql->bind_result($idconteudo, $assunto, $conteudo, $idcategoria, $idusuario);
				
				while ($sql->fetch()) {
					$objconteudo = new Conteudo();
					$objconteudo->setIdConteudo($idconteudo);
					$objconteudo->setAssunto($assunto);
					$objconteudo->setConteudo($conteudo);
					$objconteudo->setFk_idCategorias($idcategoria);
					$objconteudo->setFk_idUsuario($idusuario);
				}
		 
				$conexao->desconecta();
			
			}
			
			return $objconteudo;
			
		}
		
		public function posts($idcategoria, $inicio, $limit){
			
			$arrConteudo = array();
			$indice = 0;
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("SELECT idConteudo, assunto, conteudo, data, fk_idCategorias, fk_idUsuario FROM Conteudo WHERE 
			fk_idCategorias = ? order by idConteudo DESC limit ?, ?")){
			
				$sql->bind_param('iii', $idcategoria, $inicio, $limit);
				$sql->execute();
				$sql->bind_result($idconteudo, $assunto, $conteudo, $data, $idcategoria, $idusuario);
				
				while ($sql->fetch()) {
					$objconteudo = new Conteudo();
					$objconteudo->setIdConteudo($idconteudo);
					$objconteudo->setAssunto($assunto);
					$objconteudo->setConteudo($conteudo);
					
					$data = strtotime($data);
					$data =	date('d/m/Y', $data); 
					
					$objconteudo->setData($data);
					$objconteudo->setFk_idCategorias($idcategoria);
					$objconteudo->setFk_idUsuario($idusuario);
					$arrConteudo[$indice] = $objconteudo;
					$indice++;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $arrConteudo;
			
		}
		
		public function contador($idcategoria){
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("SELECT count(idConteudo) FROM Conteudo WHERE fk_idCategorias = ?")){
				
				$sql->bind_param('i', $idcategoria);
				$sql->execute();
				$sql->bind_result($linhas);
				
				while ($sql->fetch()) {
					$count = $linhas;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $count;
			
		}
		
		public function add($assunto, $conteudo, $idcategorias, $tags){
			
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();	
			
			session_start();
			
			$idusuario = $_SESSION['id'];	
			
			if($sql = $mysqli->prepare("INSERT into Conteudo(assunto, conteudo, fk_idCategorias, fk_idUsuario) 
			VALUES (?,?,?,?)")){
			
				$sql->bind_param('ssii', $assunto, $conteudo, $idcategorias, $idusuario);
				$sql->execute();
		 
			}
			if($sql = $mysqli->prepare("SELECT LAST_INSERT_ID() as idConteudo")){
			
				$sql->execute();
				$sql->bind_result($linhas);
				
				while ($sql->fetch()) {
					$idconteudo = $linhas;
				}
				
			}
			
			$quantidade = count($tags);
						
			for($i = 0; $i < $quantidade; $i++){
				if($tags[$i] != ""){
					if($sql = $mysqli->prepare("INSERT into ConteudoTags(fk_idConteudo, fk_tag) VALUES (?,?)")){
						$sql->bind_param('is', $idconteudo, $tags[$i]);
						$sql->execute();
					}
				}
			}
			
			$conexao->desconecta();
			
			header("Location: ../post.php?append=".$idconteudo."");
			
		}
		
		public function edit($assunto, $conteudo, $idconteudo, $categoria, $tags){
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			if($sql = $mysqli->prepare("Update Conteudo SET assunto = ?, conteudo = ? WHERE idConteudo = ?")){
			
				$sql->bind_param('ssi', $assunto, $conteudo, $idconteudo);
				$sql->execute();
		 
			}
			
			$quantidade = count($tags);
			
			for($i = 0; $i < $quantidade; $i++){
				
				if($tags[$i] != ""){
					if($sql = $mysqli->prepare("INSERT into ConteudoTags(fk_idConteudo, fk_tag) VALUES (?,?)")){
						$sql->bind_param('is', $idconteudo, $tags[$i]);
						$sql->execute();
					}
				}
				
			}
			
			$conexao->desconecta();
						
			header("Location: ../post.php?append=".$idconteudo."&match=".$categoria."");	
			
		}
		
		public function remove($idconteudo){
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();
			
			if($sql = $mysqli->prepare("Delete from Conteudo WHERE idConteudo = ?")){
			
				$sql->bind_param('i', $idconteudo);
				$sql->execute();
		 
			}
			
			$conexao->desconecta();
			
		}
		
		public function buscarTags($idconteudo){
			
			$arrTags = array();
			$indice = 0;
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();	
				
			
			if($sql = $mysqli->prepare("SELECT fk_tag FROM ConteudoTags WHERE fk_idConteudo = ?")){
			
				$sql->bind_param('i', $idconteudo);
				$sql->execute();
				$sql->bind_result($tag);
				
				while ($sql->fetch()) {
					$arrTags[$indice] = $tag;
					$indice++;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $arrTags;
			
		}
		
		public function removeTags($idconteudo, $tags){
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();
			
			$quantidade = count($tags);
			
			for($i = 0; $i < $quantidade; $i++){
			
				if($sql = $mysqli->prepare("Delete from ConteudoTags WHERE fk_idConteudo = ? && fk_tag = ?")){
				
					$sql->bind_param('is', $idconteudo, $tags[$i]);
					$sql->execute();
			 
				}
			
			}
			
			$conexao->desconecta();
			
		}
		
		public function postsSearch($key, $idcategoria, $inicio, $limit){
			
			$arrConteudo = array();
			$indice = 0;
			
			$conexao = new Conexao();
			$mysqli = $conexao->conecta();		
			
			$key = "%".$key."%";
			
			if($sql = $mysqli->prepare("SELECT idConteudo, assunto FROM Conteudo c, 
			ConteudoTags t WHERE t.fk_tag like ? && c.fk_idCategorias = ?  && 
			c.idConteudo = t.fk_idConteudo order by idConteudo DESC limit ?, ?")){
			
				$sql->bind_param('siii', $key, $idcategoria, $inicio, $limit);
				$sql->execute();
				$sql->bind_result($idconteudo, $assunto);
				
				while ($sql->fetch()) {
					$objconteudo = new Conteudo();
					$objconteudo->setIdConteudo($idconteudo);
					$objconteudo->setAssunto($assunto);
					$arrConteudo[$indice] = $objconteudo;
					$indice++;
				}
		 
				$conexao->desconecta();
			
			}
			
			return $arrConteudo;
			
		}
		
	}
	
?>